package myarraylist;

public class MyArrayList<T> {
    private  T[] array;//声明一个泛型数组array
    private int size;//声明集合的大小size

    //构造方法
    public MyArrayList(){
        array = (T[]) new Object[10];//初始化数组大小为10
        size = 0;//初始化集合大小为0
    }
    //添加元素
    public boolean add(T t){//返回值为boolean, 表示添加是否成功
        array[size++] = t;//将元素添加到数组中
        return true;
    }
    //获取元素
    public T get(int index){//返回值为T，表示返回的元素类型
        return array[index];//返回数组中指定位置的元素
    }
    //修改元素
    public boolean set(int index, T t){//返回值为boolean，表示修改是否成功
        array[index] = t;//修改数组中指定位置的元素
        return true;
    }
    //输出集合中所有元素的值
    /*public String display(){//返回值为T，表示返回的元素类型
        StringBuilder array2 = new StringBuilder();
        for(int i = 0; i < size; i++){
            System.out.println(array[i]);//输出数组中指定位置的元素
            array2.append(array[i]);
        }
        return array2.toString();
    }

     */
    public String toString() {
        if (size == 0) {
            return "[]"; // 如果列表为空，返回空列表表示
        }

        // 创建一个 StringBuilder 对象来构建字符串
        StringBuilder sb = new StringBuilder("[");

        // 遍历数组中的所有元素
        for (int i = 0; i < size; i++) {
            // 将当前元素转换为字符串并添加到 StringBuilder 中
            sb.append(array[i].toString());

            // 如果当前元素不是最后一个元素，则添加逗号和空格进行分隔
            if (i < size - 1) {
                sb.append(", "); // 添加逗号和空格分隔元素
            }
        }

        // 在字符串末尾添加右方括号
        sb.append("]");

        // 返回构建好的字符串
        return sb.toString();
    }
}
